// $ANTLR 3.4 C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g 2012-10-18 15:56:58
package PL.practica4vs2;

import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings({"all", "warnings", "unchecked"})
public class AnalizadorXml extends Lexer {
    public static final int EOF=-1;
    public static final int AUT=4;
    public static final int BIBLIO=5;
    public static final int BLANCO=6;
    public static final int COMENTARIO=7;
    public static final int DIGITO=8;
    public static final int EDIT=9;
    public static final int ETIQUETAFIN=10;
    public static final int ETIQUETAINI=11;
    public static final int LETRA=12;
    public static final int LIB=13;
    public static final int NUEVA_LINEA=14;
    public static final int NUMERO=15;
    public static final int OPERADOR=16;
    public static final int PALABRA=17;
    public static final int PARENTESIS=18;
    public static final int SEPARADOR=19;
    public static final int SIMBOLOS=20;
    public static final int TIT=21;

    public class MyToken extends CommonToken {
        String nFile; // custom field
        public MyToken(CharStream input, int type, int channel, int start, int stop){
            super(input, type, channel, start, stop);
            nFile = "";
        }
        public void getNfile (String s){nFile= s;}
        public String setNfile (){return nFile;}
        public String toString() { return super.toString()+",nombre fichero="+nFile; }
    }
    ArrayList <RecognitionException> errores = new ArrayList<RecognitionException>();

    public boolean listaVacia (){
        if (errores.isEmpty()){
          return true;
        }else
          return false;
    }

    public ArrayList getListaErrores(){return errores;}

    @Override
    public void reportError (RecognitionException e){
      errores.add(e);
    }
     
    // override standard token emission
    public Token emit() {
        MyToken t =
            new MyToken(input, state.type, state.channel,
                        state.tokenStartCharIndex, getCharIndex()-1);
        t.setLine(state.tokenStartLine);
        t.setText(state.text);
        t.setCharPositionInLine(state.tokenStartCharPositionInLine);
        t.nFile = this.getSourceName();
        emit(t);
        return t;
    }


    // delegates
    // delegators
    public Lexer[] getDelegates() {
        return new Lexer[] {};
    }

    public AnalizadorXml() {} 
    public AnalizadorXml(CharStream input) {
        this(input, new RecognizerSharedState());
    }
    public AnalizadorXml(CharStream input, RecognizerSharedState state) {
        super(input,state);
    }
    public String getGrammarFileName() { return "C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g"; }

    // $ANTLR start "NUEVA_LINEA"
    public final void mNUEVA_LINEA() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:51:23: ( '\\r\\n' )
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:51:25: '\\r\\n'
            {
            match("\r\n"); 



            }


        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "NUEVA_LINEA"

    // $ANTLR start "DIGITO"
    public final void mDIGITO() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:52:18: ( '0' .. '9' )
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:
            {
            if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) {
                input.consume();
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;
            }


            }


        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "DIGITO"

    // $ANTLR start "LETRA"
    public final void mLETRA() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:53:18: ( ( 'a' .. 'z' ) | ( 'A' .. 'Z' ) | '_' )
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:
            {
            if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) {
                input.consume();
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;
            }


            }


        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "LETRA"

    // $ANTLR start "BLANCO"
    public final void mBLANCO() throws RecognitionException {
        try {
            int _type = BLANCO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:54:9: ( ( ' ' | '\\t' | NUEVA_LINEA ) )
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:54:11: ( ' ' | '\\t' | NUEVA_LINEA )
            {
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:54:11: ( ' ' | '\\t' | NUEVA_LINEA )
            int alt1=3;
            switch ( input.LA(1) ) {
            case ' ':
                {
                alt1=1;
                }
                break;
            case '\t':
                {
                alt1=2;
                }
                break;
            case '\r':
                {
                alt1=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 1, 0, input);

                throw nvae;

            }

            switch (alt1) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:54:12: ' '
                    {
                    match(' '); 

                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:54:16: '\\t'
                    {
                    match('\t'); 

                    }
                    break;
                case 3 :
                    // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:54:21: NUEVA_LINEA
                    {
                    mNUEVA_LINEA(); 


                    }
                    break;

            }


            skip();

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "BLANCO"

    // $ANTLR start "BIBLIO"
    public final void mBIBLIO() throws RecognitionException {
        try {
            int _type = BIBLIO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:55:10: ( 'biblioteca' )
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:55:12: 'biblioteca'
            {
            match("biblioteca"); 



            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "BIBLIO"

    // $ANTLR start "LIB"
    public final void mLIB() throws RecognitionException {
        try {
            int _type = LIB;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:56:7: ( 'libro' )
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:56:9: 'libro'
            {
            match("libro"); 



            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "LIB"

    // $ANTLR start "TIT"
    public final void mTIT() throws RecognitionException {
        try {
            int _type = TIT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:57:6: ( 'titulo' )
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:57:8: 'titulo'
            {
            match("titulo"); 



            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "TIT"

    // $ANTLR start "AUT"
    public final void mAUT() throws RecognitionException {
        try {
            int _type = AUT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:58:7: ( 'autor' )
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:58:9: 'autor'
            {
            match("autor"); 



            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "AUT"

    // $ANTLR start "EDIT"
    public final void mEDIT() throws RecognitionException {
        try {
            int _type = EDIT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:59:8: ( 'editorial' )
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:59:10: 'editorial'
            {
            match("editorial"); 



            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "EDIT"

    // $ANTLR start "NUMERO"
    public final void mNUMERO() throws RecognitionException {
        try {
            int _type = NUMERO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:60:9: ( ( DIGITO )+ ( '.' ( DIGITO )+ )? )
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:60:11: ( DIGITO )+ ( '.' ( DIGITO )+ )?
            {
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:60:11: ( DIGITO )+
            int cnt2=0;
            loop2:
            do {
                int alt2=2;
                int LA2_0 = input.LA(1);

                if ( ((LA2_0 >= '0' && LA2_0 <= '9')) ) {
                    alt2=1;
                }


                switch (alt2) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:
            	    {
            	    if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) {
            	        input.consume();
            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt2 >= 1 ) break loop2;
                        EarlyExitException eee =
                            new EarlyExitException(2, input);
                        throw eee;
                }
                cnt2++;
            } while (true);


            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:60:20: ( '.' ( DIGITO )+ )?
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0=='.') ) {
                alt4=1;
            }
            switch (alt4) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:60:21: '.' ( DIGITO )+
                    {
                    match('.'); 

                    // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:60:24: ( DIGITO )+
                    int cnt3=0;
                    loop3:
                    do {
                        int alt3=2;
                        int LA3_0 = input.LA(1);

                        if ( ((LA3_0 >= '0' && LA3_0 <= '9')) ) {
                            alt3=1;
                        }


                        switch (alt3) {
                    	case 1 :
                    	    // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:
                    	    {
                    	    if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) {
                    	        input.consume();
                    	    }
                    	    else {
                    	        MismatchedSetException mse = new MismatchedSetException(null,input);
                    	        recover(mse);
                    	        throw mse;
                    	    }


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt3 >= 1 ) break loop3;
                                EarlyExitException eee =
                                    new EarlyExitException(3, input);
                                throw eee;
                        }
                        cnt3++;
                    } while (true);


                    }
                    break;

            }


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "NUMERO"

    // $ANTLR start "OPERADOR"
    public final void mOPERADOR() throws RecognitionException {
        try {
            int _type = OPERADOR;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:61:11: ( '+' | '-' | '/' | '*' )
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:
            {
            if ( (input.LA(1) >= '*' && input.LA(1) <= '+')||input.LA(1)=='-'||input.LA(1)=='/' ) {
                input.consume();
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;
            }


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "OPERADOR"

    // $ANTLR start "PARENTESIS"
    public final void mPARENTESIS() throws RecognitionException {
        try {
            int _type = PARENTESIS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:62:13: ( '(' | ')' )
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:
            {
            if ( (input.LA(1) >= '(' && input.LA(1) <= ')') ) {
                input.consume();
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;
            }


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "PARENTESIS"

    // $ANTLR start "SEPARADOR"
    public final void mSEPARADOR() throws RecognitionException {
        try {
            int _type = SEPARADOR;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:63:12: ( ';' )
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:63:14: ';'
            {
            match(';'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "SEPARADOR"

    // $ANTLR start "SIMBOLOS"
    public final void mSIMBOLOS() throws RecognitionException {
        try {
            int _type = SIMBOLOS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:64:12: ( '&' | '.' )
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:
            {
            if ( input.LA(1)=='&'||input.LA(1)=='.' ) {
                input.consume();
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;
            }


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "SIMBOLOS"

    // $ANTLR start "COMENTARIO"
    public final void mCOMENTARIO() throws RecognitionException {
        try {
            int _type = COMENTARIO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:65:13: ( '<!--' ( options {greedy=false; } : . )* '-->' )
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:65:15: '<!--' ( options {greedy=false; } : . )* '-->'
            {
            match("<!--"); 



            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:65:22: ( options {greedy=false; } : . )*
            loop5:
            do {
                int alt5=2;
                int LA5_0 = input.LA(1);

                if ( (LA5_0=='-') ) {
                    int LA5_1 = input.LA(2);

                    if ( (LA5_1=='-') ) {
                        int LA5_3 = input.LA(3);

                        if ( (LA5_3=='>') ) {
                            alt5=2;
                        }
                        else if ( ((LA5_3 >= '\u0000' && LA5_3 <= '=')||(LA5_3 >= '?' && LA5_3 <= '\uFFFF')) ) {
                            alt5=1;
                        }


                    }
                    else if ( ((LA5_1 >= '\u0000' && LA5_1 <= ',')||(LA5_1 >= '.' && LA5_1 <= '\uFFFF')) ) {
                        alt5=1;
                    }


                }
                else if ( ((LA5_0 >= '\u0000' && LA5_0 <= ',')||(LA5_0 >= '.' && LA5_0 <= '\uFFFF')) ) {
                    alt5=1;
                }


                switch (alt5) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:65:47: .
            	    {
            	    matchAny(); 

            	    }
            	    break;

            	default :
            	    break loop5;
                }
            } while (true);


            match("-->"); 



            skip();

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "COMENTARIO"

    // $ANTLR start "PALABRA"
    public final void mPALABRA() throws RecognitionException {
        try {
            int _type = PALABRA;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:66:14: ( LETRA ( LETRA | DIGITO )* )
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:66:16: LETRA ( LETRA | DIGITO )*
            {
            mLETRA(); 


            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:66:21: ( LETRA | DIGITO )*
            loop6:
            do {
                int alt6=2;
                int LA6_0 = input.LA(1);

                if ( ((LA6_0 >= '0' && LA6_0 <= '9')||(LA6_0 >= 'A' && LA6_0 <= 'Z')||LA6_0=='_'||(LA6_0 >= 'a' && LA6_0 <= 'z')) ) {
                    alt6=1;
                }


                switch (alt6) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:
            	    {
            	    if ( (input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) {
            	        input.consume();
            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    break loop6;
                }
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "PALABRA"

    // $ANTLR start "ETIQUETAINI"
    public final void mETIQUETAINI() throws RecognitionException {
        try {
            int _type = ETIQUETAINI;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:69:14: ( '<' ( BIBLIO | LIB | TIT | AUT | EDIT ) '>' )
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:69:16: '<' ( BIBLIO | LIB | TIT | AUT | EDIT ) '>'
            {
            match('<'); 

            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:69:20: ( BIBLIO | LIB | TIT | AUT | EDIT )
            int alt7=5;
            switch ( input.LA(1) ) {
            case 'b':
                {
                alt7=1;
                }
                break;
            case 'l':
                {
                alt7=2;
                }
                break;
            case 't':
                {
                alt7=3;
                }
                break;
            case 'a':
                {
                alt7=4;
                }
                break;
            case 'e':
                {
                alt7=5;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 7, 0, input);

                throw nvae;

            }

            switch (alt7) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:69:21: BIBLIO
                    {
                    mBIBLIO(); 


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:69:29: LIB
                    {
                    mLIB(); 


                    }
                    break;
                case 3 :
                    // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:69:34: TIT
                    {
                    mTIT(); 


                    }
                    break;
                case 4 :
                    // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:69:39: AUT
                    {
                    mAUT(); 


                    }
                    break;
                case 5 :
                    // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:69:44: EDIT
                    {
                    mEDIT(); 


                    }
                    break;

            }


            match('>'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "ETIQUETAINI"

    // $ANTLR start "ETIQUETAFIN"
    public final void mETIQUETAFIN() throws RecognitionException {
        try {
            int _type = ETIQUETAFIN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:70:14: ( '</' ( BIBLIO | LIB | TIT | AUT | EDIT ) '>' )
            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:70:16: '</' ( BIBLIO | LIB | TIT | AUT | EDIT ) '>'
            {
            match("</"); 



            // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:70:21: ( BIBLIO | LIB | TIT | AUT | EDIT )
            int alt8=5;
            switch ( input.LA(1) ) {
            case 'b':
                {
                alt8=1;
                }
                break;
            case 'l':
                {
                alt8=2;
                }
                break;
            case 't':
                {
                alt8=3;
                }
                break;
            case 'a':
                {
                alt8=4;
                }
                break;
            case 'e':
                {
                alt8=5;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 8, 0, input);

                throw nvae;

            }

            switch (alt8) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:70:22: BIBLIO
                    {
                    mBIBLIO(); 


                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:70:30: LIB
                    {
                    mLIB(); 


                    }
                    break;
                case 3 :
                    // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:70:35: TIT
                    {
                    mTIT(); 


                    }
                    break;
                case 4 :
                    // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:70:40: AUT
                    {
                    mAUT(); 


                    }
                    break;
                case 5 :
                    // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:70:45: EDIT
                    {
                    mEDIT(); 


                    }
                    break;

            }


            match('>'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "ETIQUETAFIN"

    public void mTokens() throws RecognitionException {
        // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:1:8: ( BLANCO | BIBLIO | LIB | TIT | AUT | EDIT | NUMERO | OPERADOR | PARENTESIS | SEPARADOR | SIMBOLOS | COMENTARIO | PALABRA | ETIQUETAINI | ETIQUETAFIN )
        int alt9=15;
        switch ( input.LA(1) ) {
        case '\t':
        case '\r':
        case ' ':
            {
            alt9=1;
            }
            break;
        case 'b':
            {
            int LA9_2 = input.LA(2);

            if ( (LA9_2=='i') ) {
                int LA9_14 = input.LA(3);

                if ( (LA9_14=='b') ) {
                    int LA9_22 = input.LA(4);

                    if ( (LA9_22=='l') ) {
                        int LA9_27 = input.LA(5);

                        if ( (LA9_27=='i') ) {
                            int LA9_32 = input.LA(6);

                            if ( (LA9_32=='o') ) {
                                int LA9_37 = input.LA(7);

                                if ( (LA9_37=='t') ) {
                                    int LA9_42 = input.LA(8);

                                    if ( (LA9_42=='e') ) {
                                        int LA9_45 = input.LA(9);

                                        if ( (LA9_45=='c') ) {
                                            int LA9_47 = input.LA(10);

                                            if ( (LA9_47=='a') ) {
                                                int LA9_49 = input.LA(11);

                                                if ( ((LA9_49 >= '0' && LA9_49 <= '9')||(LA9_49 >= 'A' && LA9_49 <= 'Z')||LA9_49=='_'||(LA9_49 >= 'a' && LA9_49 <= 'z')) ) {
                                                    alt9=13;
                                                }
                                                else {
                                                    alt9=2;
                                                }
                                            }
                                            else {
                                                alt9=13;
                                            }
                                        }
                                        else {
                                            alt9=13;
                                        }
                                    }
                                    else {
                                        alt9=13;
                                    }
                                }
                                else {
                                    alt9=13;
                                }
                            }
                            else {
                                alt9=13;
                            }
                        }
                        else {
                            alt9=13;
                        }
                    }
                    else {
                        alt9=13;
                    }
                }
                else {
                    alt9=13;
                }
            }
            else {
                alt9=13;
            }
            }
            break;
        case 'l':
            {
            int LA9_3 = input.LA(2);

            if ( (LA9_3=='i') ) {
                int LA9_15 = input.LA(3);

                if ( (LA9_15=='b') ) {
                    int LA9_23 = input.LA(4);

                    if ( (LA9_23=='r') ) {
                        int LA9_28 = input.LA(5);

                        if ( (LA9_28=='o') ) {
                            int LA9_33 = input.LA(6);

                            if ( ((LA9_33 >= '0' && LA9_33 <= '9')||(LA9_33 >= 'A' && LA9_33 <= 'Z')||LA9_33=='_'||(LA9_33 >= 'a' && LA9_33 <= 'z')) ) {
                                alt9=13;
                            }
                            else {
                                alt9=3;
                            }
                        }
                        else {
                            alt9=13;
                        }
                    }
                    else {
                        alt9=13;
                    }
                }
                else {
                    alt9=13;
                }
            }
            else {
                alt9=13;
            }
            }
            break;
        case 't':
            {
            int LA9_4 = input.LA(2);

            if ( (LA9_4=='i') ) {
                int LA9_16 = input.LA(3);

                if ( (LA9_16=='t') ) {
                    int LA9_24 = input.LA(4);

                    if ( (LA9_24=='u') ) {
                        int LA9_29 = input.LA(5);

                        if ( (LA9_29=='l') ) {
                            int LA9_34 = input.LA(6);

                            if ( (LA9_34=='o') ) {
                                int LA9_39 = input.LA(7);

                                if ( ((LA9_39 >= '0' && LA9_39 <= '9')||(LA9_39 >= 'A' && LA9_39 <= 'Z')||LA9_39=='_'||(LA9_39 >= 'a' && LA9_39 <= 'z')) ) {
                                    alt9=13;
                                }
                                else {
                                    alt9=4;
                                }
                            }
                            else {
                                alt9=13;
                            }
                        }
                        else {
                            alt9=13;
                        }
                    }
                    else {
                        alt9=13;
                    }
                }
                else {
                    alt9=13;
                }
            }
            else {
                alt9=13;
            }
            }
            break;
        case 'a':
            {
            int LA9_5 = input.LA(2);

            if ( (LA9_5=='u') ) {
                int LA9_17 = input.LA(3);

                if ( (LA9_17=='t') ) {
                    int LA9_25 = input.LA(4);

                    if ( (LA9_25=='o') ) {
                        int LA9_30 = input.LA(5);

                        if ( (LA9_30=='r') ) {
                            int LA9_35 = input.LA(6);

                            if ( ((LA9_35 >= '0' && LA9_35 <= '9')||(LA9_35 >= 'A' && LA9_35 <= 'Z')||LA9_35=='_'||(LA9_35 >= 'a' && LA9_35 <= 'z')) ) {
                                alt9=13;
                            }
                            else {
                                alt9=5;
                            }
                        }
                        else {
                            alt9=13;
                        }
                    }
                    else {
                        alt9=13;
                    }
                }
                else {
                    alt9=13;
                }
            }
            else {
                alt9=13;
            }
            }
            break;
        case 'e':
            {
            int LA9_6 = input.LA(2);

            if ( (LA9_6=='d') ) {
                int LA9_18 = input.LA(3);

                if ( (LA9_18=='i') ) {
                    int LA9_26 = input.LA(4);

                    if ( (LA9_26=='t') ) {
                        int LA9_31 = input.LA(5);

                        if ( (LA9_31=='o') ) {
                            int LA9_36 = input.LA(6);

                            if ( (LA9_36=='r') ) {
                                int LA9_41 = input.LA(7);

                                if ( (LA9_41=='i') ) {
                                    int LA9_44 = input.LA(8);

                                    if ( (LA9_44=='a') ) {
                                        int LA9_46 = input.LA(9);

                                        if ( (LA9_46=='l') ) {
                                            int LA9_48 = input.LA(10);

                                            if ( ((LA9_48 >= '0' && LA9_48 <= '9')||(LA9_48 >= 'A' && LA9_48 <= 'Z')||LA9_48=='_'||(LA9_48 >= 'a' && LA9_48 <= 'z')) ) {
                                                alt9=13;
                                            }
                                            else {
                                                alt9=6;
                                            }
                                        }
                                        else {
                                            alt9=13;
                                        }
                                    }
                                    else {
                                        alt9=13;
                                    }
                                }
                                else {
                                    alt9=13;
                                }
                            }
                            else {
                                alt9=13;
                            }
                        }
                        else {
                            alt9=13;
                        }
                    }
                    else {
                        alt9=13;
                    }
                }
                else {
                    alt9=13;
                }
            }
            else {
                alt9=13;
            }
            }
            break;
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
            {
            alt9=7;
            }
            break;
        case '*':
        case '+':
        case '-':
        case '/':
            {
            alt9=8;
            }
            break;
        case '(':
        case ')':
            {
            alt9=9;
            }
            break;
        case ';':
            {
            alt9=10;
            }
            break;
        case '&':
        case '.':
            {
            alt9=11;
            }
            break;
        case '<':
            {
            switch ( input.LA(2) ) {
            case '!':
                {
                alt9=12;
                }
                break;
            case '/':
                {
                alt9=15;
                }
                break;
            case 'a':
            case 'b':
            case 'e':
            case 'l':
            case 't':
                {
                alt9=14;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 9, 12, input);

                throw nvae;

            }

            }
            break;
        case 'A':
        case 'B':
        case 'C':
        case 'D':
        case 'E':
        case 'F':
        case 'G':
        case 'H':
        case 'I':
        case 'J':
        case 'K':
        case 'L':
        case 'M':
        case 'N':
        case 'O':
        case 'P':
        case 'Q':
        case 'R':
        case 'S':
        case 'T':
        case 'U':
        case 'V':
        case 'W':
        case 'X':
        case 'Y':
        case 'Z':
        case '_':
        case 'c':
        case 'd':
        case 'f':
        case 'g':
        case 'h':
        case 'i':
        case 'j':
        case 'k':
        case 'm':
        case 'n':
        case 'o':
        case 'p':
        case 'q':
        case 'r':
        case 's':
        case 'u':
        case 'v':
        case 'w':
        case 'x':
        case 'y':
        case 'z':
            {
            alt9=13;
            }
            break;
        default:
            NoViableAltException nvae =
                new NoViableAltException("", 9, 0, input);

            throw nvae;

        }

        switch (alt9) {
            case 1 :
                // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:1:10: BLANCO
                {
                mBLANCO(); 


                }
                break;
            case 2 :
                // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:1:17: BIBLIO
                {
                mBIBLIO(); 


                }
                break;
            case 3 :
                // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:1:24: LIB
                {
                mLIB(); 


                }
                break;
            case 4 :
                // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:1:28: TIT
                {
                mTIT(); 


                }
                break;
            case 5 :
                // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:1:32: AUT
                {
                mAUT(); 


                }
                break;
            case 6 :
                // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:1:36: EDIT
                {
                mEDIT(); 


                }
                break;
            case 7 :
                // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:1:41: NUMERO
                {
                mNUMERO(); 


                }
                break;
            case 8 :
                // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:1:48: OPERADOR
                {
                mOPERADOR(); 


                }
                break;
            case 9 :
                // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:1:57: PARENTESIS
                {
                mPARENTESIS(); 


                }
                break;
            case 10 :
                // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:1:68: SEPARADOR
                {
                mSEPARADOR(); 


                }
                break;
            case 11 :
                // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:1:78: SIMBOLOS
                {
                mSIMBOLOS(); 


                }
                break;
            case 12 :
                // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:1:87: COMENTARIO
                {
                mCOMENTARIO(); 


                }
                break;
            case 13 :
                // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:1:98: PALABRA
                {
                mPALABRA(); 


                }
                break;
            case 14 :
                // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:1:106: ETIQUETAINI
                {
                mETIQUETAINI(); 


                }
                break;
            case 15 :
                // C:\\Users\\Jose\\workspace\\practica4vs2\\src\\main\\java\\PL\\practica4vs2\\AnalizadorXml.g:1:118: ETIQUETAFIN
                {
                mETIQUETAFIN(); 


                }
                break;

        }

    }


 

}